// * 封装axios，减少学习成本，参数基本跟jq ajax一致
//   * @param {String} type            请求的类型，默认post
//   * @param {String} url             请求地址
//   * @param {String} time            超时时间
//   * @param {Object} data            请求参数
//   * @param {String} dataType        预期服务器返回的数据类型，xml html json ...
//   * @param {Object} headers         自定义请求headers
//   * @param {Function} success       请求成功后，这里会有两个参数,服务器返回数据，返回状态，[,data res]
//   * @param {Function} error     发送请求前
//   * @param return
var baseURL = "https://www.precise.com";
var Rxports = {
  ajax: function(opt) {
    let self = this;
    var opts = opt || {};

    if (!opts.url) {
      alert("请填写接口地址");
      return false;
    }
    let obj = {
      method: opts.type || "post",
      url: opts.url,
      headers: opts.headers || {
        "Content-Type": "application/x-www-form-urlencoded"
      },
      // `baseURL` 将自动加在 `url` 前面，除非 `url` 是一个绝对 URL。
      // 它可以通过设置一个 `baseURL` 便于为 axios 实例的方法传递相对 URL
      // baseURL:'https://www.precise.com/www/',
      baseURL: baseURL,
      timeout: opts.time || 10 * 1000,
      responseType: opts.dataType || "json"
    };
    opts["data"] = opts["data"] || {};
    //进行数据深度拷贝。防止修改数据时将原始数据污染;
    let str = JSON.stringify(opts["data"]);

    opts["data"] = JSON.parse(str);
    opts["data"]["token"] = opts["data"]["token"] || "";
    //this.Log(opts["data"]["token"]);
    if (opts.type == "post") {
      obj.data = qs.stringify(opts.data || {});
    } else {
      obj.params = opts.data || {};
    }
    axios(obj)
      .then(function(res) {
        console.log(res, "res请求");
        if (res.status == 200) {
          if (opts.success) {
            opts.success(res.data, res);
            if (res.data.t && res.data.t.length > 0) {
              modal.show(
                res.data.t,
                self.getToken("token")["token"],
                self.apiURI()
              );
              console.log("ajax", res.data.t);
            }
          }
        } else {
          if (data.error) {
            opts.error(error);
          } else {
            console.log("网络故障" + data.error);
          }
        }
      })
      .catch(function(error) {
        console.log("回调处理错误", error);
        if (opts.error) {
          opts.error(error);
        } else {
          // console.log('网络故障');
        }
      });
  }
};

var opt = {
  url: "http://172.30.83.111:8080"
};
Rxports.ajax(opt);
